// Learn cc.Class:
//  - https://docs.cocos.com/creator/manual/en/scripting/class.html
// Learn Attribute:
//  - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
//  - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html

cc.Class({
    extends: cc.Component,

    properties: {
        turn: cc.Label,
        kill: cc.Label,
        liveTime: cc.Label,

        turnNew: cc.Node,
        killNew: cc.Node,
        liveTimeNew: cc.Node,
    },

    onClick(e, custom) {
        // 获取当前关卡编号
        let level = custom;
        if (level == 1) {
            cc.director.loadScene('game');
            // 重置技能次数
            g_Skill.resetSkillCounts();
        } else if (level == 2) { 
            cc.director.loadScene('MapSelect');
        }

    },

    init(level, turn, kill, liveTime) { 
        // // 从本地存储中获取名为"Audery"的数据
        // let data = cc.sys.localStorage.getItem("Audery");
        
        // // 如果数据不存在
        // if (!data) {
        //     // 初始化数据
        //     data = {
        //         turn: -1,
        //         kill: -1,
        //         liveTime: -1
        //     }
        // // 如果数据存在
        // } else {
        //     // 解析数据为JSON对象
        //     data = JSON.parse(data);
        // }

        // 设置挑战波数的显示
        this.turn.string = `挑战波数：${turn}`;
        // 设置消灭怪物的显示
        this.kill.string = `消灭怪物：${kill}`;

        // 计算生存时间的分钟和秒
        let minutes = Math.floor(liveTime / 60);
        let seconds = liveTime % 60;

        // 初始化生存时间的显示
        this.liveTime.string = `生存时间：`;
        // 如果分钟数大于0
        if (minutes > 0) {
            // 添加分钟数到生存时间显示
            this.liveTime.string += `${minutes}m`;
        }
        // 如果秒数大于0
        if (seconds > 0) { 
            // 添加秒数到生存时间显示
            this.liveTime.string += `${seconds}s`;
        }

        // let levelData = data[level.toString()];
        let levelData = cc.sys.localStorage.getItem(level.toString());//获取本地存储中对应关卡的数据

        if (!levelData) {
            levelData = {
                turn: -1,
                kill: -1,
                liveTime: -1
            }
            // data[level.toString()] = levelData;
        } else {
            levelData = JSON.parse(levelData);//解析数据为JSON对象
        }

        // 如果当前波数大于之前保存的波数
        if (turn > levelData.turn) {
            // 更新保存的波数
            levelData.turn = turn;
            // 激活新波数提示
            this.turnNew.active = true;
        }

        // 如果当前消灭怪物数大于之前保存的消灭怪物数
        if (kill > levelData.kill) {
            // 更新保存的消灭怪物数
            levelData.kill = kill;
            // 激活新消灭怪物数提示
            this.killNew.active = true;
        }

        // 如果当前生存时间大于之前保存的生存时间
        if (liveTime > levelData.liveTime) {
            // 更新保存的生存时间
            levelData.liveTime = liveTime;
            // 激活新生存时间提示
            this.liveTimeNew.active = true;
        }

        // 将更新后的数据保存回本地存储
        cc.sys.localStorage.setItem(level.toString(), JSON.stringify(levelData));
    },

    onLoad() {
        this.turnNew.active = false;
        this.killNew.active = false;
        this.liveTimeNew.active = false;
    },

    start() {
    },

    // update (dt) {},
});
